﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

using Admin.NET.Core;
using System.ComponentModel.DataAnnotations;

namespace Admin.NET.Application;

/// <summary>
/// 车辆交易评价表基础输入参数
/// </summary>
public class VehicleTransactionFeedbackUserInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public virtual long? Id { get; set; }
    
    /// <summary>
    /// 交易ID
    /// </summary>
    public virtual long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>
    public virtual TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID
    /// </summary>
    public virtual long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 被评价用户ID
    /// </summary>
    [Required(ErrorMessage = "被评价用户ID不能为空")]
    public virtual long? TargetUserId { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>
    public virtual FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 评价分数
    /// </summary>
    public virtual FeedbackRatingEnum? Rating { get; set; }

    /// <summary>
    /// 交易评级结果类型枚举
    /// </summary>
    public EvaluateTypeEnum EvaluateType { get; set; }

    /// <summary>
    /// 评价内容
    /// </summary>
    public virtual string Comment { get; set; }
    
    /// <summary>
    /// 评价图片
    /// </summary>
    public virtual string Images { get; set; }
    
    /// <summary>
    /// 评价标签
    /// </summary>
    public virtual string Tags { get; set; }
    
    /// <summary>
    /// 是否匿名
    /// </summary>
    public virtual bool? IsAnonymous { get; set; }
    
}

/// <summary>
/// 车辆交易评价表基础输入参数
/// </summary>
public class AppVehicleTransactionFeedbackBaseInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    public virtual long? Id { get; set; }
    
    /// <summary>
    /// 交易ID
    /// </summary>
    [Required(ErrorMessage = "交易ID不能为空")]
    public virtual long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>
    [Dict(nameof(TransactionTypeEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "交易类型不能为空")]
    public virtual TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID
    /// </summary>
    public virtual long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 被评价用户ID
    /// </summary>
    [Required(ErrorMessage = "被评价用户ID不能为空")]
    public virtual long? TargetUserId { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>
    [Dict(nameof(FeedbackRoleEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价角色不能为空")]
    public virtual FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 评价分数
    /// </summary>
    [Dict(nameof(FeedbackRatingEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价分数不能为空")]
    public virtual FeedbackRatingEnum? Rating { get; set; }

    /// <summary>
    /// 交易评级结果类型枚举
    /// </summary>
    public EvaluateTypeEnum EvaluateType { get; set; }

    /// <summary>
    /// 评价内容
    /// </summary>
    [Required(ErrorMessage = "评价内容不能为空")]
    public virtual string Comment { get; set; }
    
    /// <summary>
    /// 评价图片
    /// </summary>
    public virtual string Images { get; set; }
    
    /// <summary>
    /// 评价标签
    /// </summary>
    public virtual string Tags { get; set; }
    
    /// <summary>
    /// 是否匿名
    /// </summary>
    [Required(ErrorMessage = "是否匿名不能为空")]
    public virtual bool? IsAnonymous { get; set; }
    
}

/// <summary>
/// 车辆交易评价表分页查询输入参数
/// </summary>
public class PageAppVehicleTransactionFeedbackInput : BasePageInput
{
    /// <summary>
    /// 交易ID
    /// </summary>
    public long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>
    [Dict(nameof(TransactionTypeEnum), AllowNullValue=true)]
    public TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID
    /// </summary>
    public long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 被评价用户ID
    /// </summary>
    public long? TargetUserId { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>
    [Dict(nameof(FeedbackRoleEnum), AllowNullValue=true)]
    public FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 选中主键列表
    /// </summary>
     public List<long> SelectKeyList { get; set; }
}

/// <summary>
/// 车辆交易评价表增加输入参数
/// </summary>
public class AddAppVehicleTransactionFeedbackInput
{
    /// <summary>
    /// 交易ID
    /// </summary>
    [Required(ErrorMessage = "交易ID不能为空")]
    public long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>
    [Dict(nameof(TransactionTypeEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "交易类型不能为空")]
    public TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID
    /// </summary>
    [Required(ErrorMessage = "评价用户ID不能为空")]
    public long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 被评价用户ID
    /// </summary>
    [Required(ErrorMessage = "被评价用户ID不能为空")]
    public long? TargetUserId { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>
    [Dict(nameof(FeedbackRoleEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价角色不能为空")]
    public FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 评价分数
    /// </summary>
    [Dict(nameof(FeedbackRatingEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价分数不能为空")]
    public FeedbackRatingEnum? Rating { get; set; }
    
    /// <summary>
    /// 评价内容
    /// </summary>
    [Required(ErrorMessage = "评价内容不能为空")]
    [MaxLength(500, ErrorMessage = "评价内容字符长度不能超过500")]
    public string Comment { get; set; }
    
    /// <summary>
    /// 评价图片
    /// </summary>
    public string Images { get; set; }
    
    /// <summary>
    /// 评价标签
    /// </summary>
    public string Tags { get; set; }
    
    /// <summary>
    /// 是否匿名
    /// </summary>
    [Required(ErrorMessage = "是否匿名不能为空")]
    public bool? IsAnonymous { get; set; }
    
}

/// <summary>
/// 车辆交易评价表删除输入参数
/// </summary>
public class DeleteAppVehicleTransactionFeedbackInput
{
    /// <summary>
    /// 主键Id
    /// </summary>
    [Required(ErrorMessage = "主键Id不能为空")]
    public long? Id { get; set; }
    
}

/// <summary>
/// 车辆交易评价表更新输入参数
/// </summary>
public class UpdateAppVehicleTransactionFeedbackInput
{
    /// <summary>
    /// 主键Id
    /// </summary>    
    [Required(ErrorMessage = "主键Id不能为空")]
    public long? Id { get; set; }
    
    /// <summary>
    /// 交易ID
    /// </summary>    
    [Required(ErrorMessage = "交易ID不能为空")]
    public long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>    
    [Dict(nameof(TransactionTypeEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "交易类型不能为空")]
    public TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID
    /// </summary>    
    [Required(ErrorMessage = "评价用户ID不能为空")]
    public long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 被评价用户ID
    /// </summary>    
    [Required(ErrorMessage = "被评价用户ID不能为空")]
    public long? TargetUserId { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>    
    [Dict(nameof(FeedbackRoleEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价角色不能为空")]
    public FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 评价分数
    /// </summary>    
    [Dict(nameof(FeedbackRatingEnum), AllowNullValue=true)]
    [Required(ErrorMessage = "评价分数不能为空")]
    public FeedbackRatingEnum? Rating { get; set; }
    
    /// <summary>
    /// 评价内容
    /// </summary>    
    [Required(ErrorMessage = "评价内容不能为空")]
    [MaxLength(500, ErrorMessage = "评价内容字符长度不能超过500")]
    public string Comment { get; set; }
    
    /// <summary>
    /// 评价图片
    /// </summary>    
    public string Images { get; set; }
    
    /// <summary>
    /// 评价标签
    /// </summary>    
    public string Tags { get; set; }
    
    /// <summary>
    /// 是否匿名
    /// </summary>    
    [Required(ErrorMessage = "是否匿名不能为空")]
    public bool? IsAnonymous { get; set; }
    
}

/// <summary>
/// 车辆交易评价表主键查询输入参数
/// </summary>
public class QueryByIdAppVehicleTransactionFeedbackInput : DeleteAppVehicleTransactionFeedbackInput
{
}

/// <summary>
/// 下拉数据输入参数
/// </summary>
public class DropdownDataAppVehicleTransactionFeedbackInput
{
    /// <summary>
    /// 是否用于分页查询
    /// </summary>
    public bool FromPage { get; set; }
}

/// <summary>
/// 车辆交易评价表数据导入实体
/// </summary>
[ExcelImporter(SheetIndex = 1, IsOnlyErrorRows = true)]
public class ImportAppVehicleTransactionFeedbackInput : BaseImportInput
{
    /// <summary>
    /// 交易ID 关联值
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    [ExporterHeader(IsIgnore = true)]
    public long? TransactionId { get; set; }
    
    /// <summary>
    /// 交易ID 文本
    /// </summary>
    [ImporterHeader(Name = "*交易ID")]
    [ExporterHeader("*交易ID", Format = "", Width = 25, IsBold = true)]
    public string TransactionFkDisplayName { get; set; }
    
    /// <summary>
    /// 交易类型
    /// </summary>
    [ImporterHeader(Name = "*交易类型")]
    [ExporterHeader("*交易类型", Format = "", Width = 25, IsBold = true)]
    public TransactionTypeEnum? TransactionType { get; set; }
    
    /// <summary>
    /// 评价用户ID 关联值
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    [ExporterHeader(IsIgnore = true)]
    public long? EvaluatorId { get; set; }
    
    /// <summary>
    /// 评价用户ID 文本
    /// </summary>
    [ImporterHeader(Name = "*评价用户ID")]
    [ExporterHeader("*评价用户ID", Format = "", Width = 25, IsBold = true)]
    public string EvaluatorFkDisplayName { get; set; }
    
    /// <summary>
    /// 被评价用户ID 关联值
    /// </summary>
    [ImporterHeader(IsIgnore = true)]
    [ExporterHeader(IsIgnore = true)]
    public long? TargetUserId { get; set; }
    
    /// <summary>
    /// 被评价用户ID 文本
    /// </summary>
    [ImporterHeader(Name = "*被评价用户ID")]
    [ExporterHeader("*被评价用户ID", Format = "", Width = 25, IsBold = true)]
    public string TargetUserFkDisplayName { get; set; }
    
    /// <summary>
    /// 评价角色
    /// </summary>
    [ImporterHeader(Name = "*评价角色")]
    [ExporterHeader("*评价角色", Format = "", Width = 25, IsBold = true)]
    public FeedbackRoleEnum? FeedbackRole { get; set; }
    
    /// <summary>
    /// 评价分数
    /// </summary>
    [ImporterHeader(Name = "*评价分数")]
    [ExporterHeader("*评价分数", Format = "", Width = 25, IsBold = true)]
    public FeedbackRatingEnum? Rating { get; set; }
    
    /// <summary>
    /// 评价内容
    /// </summary>
    [ImporterHeader(Name = "*评价内容")]
    [ExporterHeader("*评价内容", Format = "", Width = 25, IsBold = true)]
    public string Comment { get; set; }
    
    /// <summary>
    /// 评价图片
    /// </summary>
    [ImporterHeader(Name = "评价图片")]
    [ExporterHeader("评价图片", Format = "", Width = 25, IsBold = true)]
    public string Images { get; set; }
    
    /// <summary>
    /// 评价标签
    /// </summary>
    [ImporterHeader(Name = "评价标签")]
    [ExporterHeader("评价标签", Format = "", Width = 25, IsBold = true)]
    public string Tags { get; set; }
    
    /// <summary>
    /// 是否匿名
    /// </summary>
    [ImporterHeader(Name = "*是否匿名")]
    [ExporterHeader("*是否匿名", Format = "", Width = 25, IsBold = true)]
    public bool? IsAnonymous { get; set; }
    
}
